Visaptverošs ceļvedis Python virtuālo vidi iestatīšanā, izmantojot virtualenv un venv, nodrošinot projektu izolāciju un atkarību pārvaldību. Svarīgi visiem izstrādātājiem.
Python Virtualenv iestatīšana: Izolētas vides izveide
Python izstrādes pasaulē atkarību pārvaldība un projektu izolācijas nodrošināšana ir būtiska, lai radītu stabilas un uzturamas lietojumprogrammas. Viens no efektīvākajiem veidiem, kā to panākt, ir virtuālo vidi izmantošana. Virtuālā vide ir patstāvīgs direktorijs, kas satur konkrētu Python interpretatoru kopā ar tā instalētajām pakotnēm. Tas ļauj vienlaicīgi strādāt pie vairākiem projektiem, katram ar savu unikālu atkarību kopumu, neradot konfliktus, ko izraisa dažādas pakotņu versijas.
Kāpēc izmantot virtuālās vides?
Iedomājieties scenāriju, kurā strādājat pie diviem Python projektiem. Projektam A ir nepieciešama konkrētas bibliotēkas versija 1.0, savukārt Projektam B ir nepieciešama tās pašas bibliotēkas versija 2.0. Bez virtuālajām vidēm, instalējot bibliotēku globāli, visticamāk, rastos saderības problēmas vienam no projektiem. Virtuālās vides atrisina šo problēmu, nodrošinot katram projektam izolētas telpas, lai tam būtu savs pakotņu kopums.
Šeit ir dažas galvenās virtuālo vidi izmantošanas priekšrocības:
- Atkarību izolācija: Katram projektam ir savs atkarību kopums, novēršot konfliktus.
- Versiju pārvaldība: Viegli pārvaldiet dažādas pakotņu versijas dažādiem projektiem.
- Projekta reproducējamība: Nodrošiniet, lai jūsu projektu varētu viegli replicēt dažādās mašīnās ar vienādām atkarībām.
- Tīra globālā vide: Saglabā jūsu globālo Python instalāciju tīru un sakārtotu.
Virtuālo vidi iestatīšana: virtualenv un venv
Ir divi galvenie rīki virtuālo vidi izveidošanai Python: virtualenv
un venv
. virtualenv
ir trešās puses pakotne, kas pastāv jau ilgu laiku un piedāvā plašu funkciju klāstu. venv
ir iebūvēts modulis Python 3.3 un jaunākās versijās, nodrošinot vieglu alternatīvu virtualenv
. Abi rīki sasniedz vienu un to pašu mērķi: izolētu Python vidi izveidošanu.
virtualenv izmantošana
virtualenv
ir populārs un plaši izmantots rīks virtuālo vidi izveidošanai. Lūk, kā to izmantot:
Instalācija
Vispirms jums jāinstalē virtualenv
. To var izdarīt, izmantojot pip:
pip install virtualenv
Virtuālās vides izveide
Kad virtualenv
ir instalēts, varat izveidot virtuālo vidi savā projekta direktorijā. Pārejiet uz projekta direktoriju terminālī un palaidiet šādu komandu:
virtualenv myenv
Šī komanda izveido jaunu direktoriju ar nosaukumu myenv
(varat izvēlēties jebkuru nosaukumu), kas satur virtuālo vidi. Direktorijs myenv
saturēs šādas apakšdirektorijas:
bin
: Satur Python izpildāmo failu un aktivizācijas skriptus.include
: Satur C galvenes Python paplašinājumu kompilēšanai.lib
: Satur site-packages direktoriju, kur atradīsies instalētās pakotnes.
Virtuālās vides aktivizēšana
Lai izmantotu virtuālo vidi, tā jāaktivizē. Tas mainīs jūsu čaulas vides mainīgos, lai izmantotu Python interpretatoru un pakotnes virtuālajā vidē.
Linux/macOS sistēmās izmantojiet šādu komandu:
source myenv/bin/activate
Windows sistēmās izmantojiet šādu komandu:
myenv\Scripts\activate
Pēc aktivizēšanas pamanīsit, ka termināla uzvedne mainās, lai norādītu aktīvo virtuālo vidi (piemēram, (myenv) $
). Tagad visas pakotnes, ko instalējat, izmantojot pip, tiks instalētas virtuālajā vidē un neietekmēs jūsu globālo Python instalāciju vai citas virtuālās vides.
Virtuālās vides deaktivizēšana
Kad esat pabeidzis darbu pie projekta, varat deaktivizēt virtuālo vidi, palaižot šādu komandu:
deactivate
Tas atgriezīs jūsu termināla uzvedni normālā stāvoklī un atgriezīsies pie globālās Python instalācijas izmantošanas.
venv izmantošana
venv
ir iebūvēts modulis Python 3.3 un jaunākās versijās, nodrošinot vieglu alternatīvu virtualenv
. Parasti ir ieteicams izmantot venv
, ja izmantojat Python versiju, kas to ietver.
Virtuālās vides izveide
Lai izveidotu virtuālo vidi, izmantojot venv
, pārejiet uz projekta direktoriju terminālī un palaidiet šādu komandu:
python3 -m venv myenv
Šī komanda izveido jaunu direktoriju ar nosaukumu myenv
(vai jebkuru jūsu izvēlētu nosaukumu), kas satur virtuālo vidi, līdzīgi kā virtualenv
.
Virtuālās vides aktivizēšana
Aktivizācijas process priekš venv
ir tāds pats kā priekš virtualenv
. Linux/macOS sistēmās izmantojiet šādu komandu:
source myenv/bin/activate
Windows sistēmās izmantojiet šādu komandu:
myenv\Scripts\activate
Pēc aktivizēšanas jūsu termināla uzvedne norādīs aktīvo virtuālo vidi, un visas instalētās pakotnes tiks izolētas šajā vidē.
Virtuālās vides deaktivizēšana
venv
vides deaktivizēšana ir arī tāda pati kā ar virtualenv
:
deactivate
Atkarību pārvaldība ar pip
Kad esat aktivizējis virtuālo vidi, varat izmantot pip, lai instalētu, atjauninātu un atinstalētu pakotnes. Šeit ir dažas bieži lietotas pip komandas:
- Instalēt pakotni:
pip install package_name
(piemēram,pip install requests
) - Instalēt konkrētu pakotnes versiju:
pip install package_name==version
(piemēram,pip install requests==2.26.0
) - Atjaunināt pakotni:
pip install --upgrade package_name
(piemēram,pip install --upgrade requests
) - Atinstalēt pakotni:
pip uninstall package_name
(piemēram,pip uninstall requests
) - Uzskaitīt instalētās pakotnes:
pip list
vaipip freeze
Prasību faila ģenerēšana
Lai nodrošinātu, ka jūsu projekta atkarības var viegli replicēt citās mašīnās, vislabākā prakse ir ģenerēt requirements.txt
failu. Šis fails uzskaita visas pakotnes un to versijas, kas ir instalētas jūsu virtuālajā vidē.
Lai ģenerētu requirements.txt
failu, aktivizējiet savu virtuālo vidi un palaidiet šādu komandu:
pip freeze > requirements.txt
Tas izveidos failu ar nosaukumu requirements.txt
jūsu projekta direktorijā. Pēc tam šo failu varat iekļaut sava projekta versiju kontroles sistēmā (piemēram, Git), lai citi varētu viegli instalēt tās pašas atkarības.
Instalēšana no prasību faila
Lai instalētu atkarības, kas uzskaitītas requirements.txt
failā, aktivizējiet savu virtuālo vidi un palaidiet šādu komandu:
pip install -r requirements.txt
Tas instalēs visas pakotnes un to norādītās versijas no requirements.txt
faila.
Labākā prakse virtuālo vidi izmantošanā
Šeit ir dažas labākās prakses, kas jāievēro, izmantojot virtuālās vides:
- Izveidojiet virtuālo vidi katram projektam: Tas nodrošina, ka katram projektam ir savs izolēts atkarību kopums.
- Uzturiet savu prasību failu atjauninātu: Regulāri atjauniniet savu
requirements.txt
failu, lai atspoguļotu jūsu projekta pašreizējās atkarības. - Izmantojiet versiju kontroli: Iekļaujiet savu virtuālās vides direktoriju projekta
.gitignore
failā, lai novērstu tā iekļaušanu versiju kontrolē. Iekļaujiet tikairequirements.txt
failu. - Nosauciet savas virtuālās vides konsekventi: Izmantojiet konsekventu nosaukumu piešķiršanas konvenciju savām virtuālajām vidēm, lai izvairītos no neskaidrībām. Piemēram, varat tās nosaukt par
.venv
vaivenv
. - Izmantojiet virtuālās vides pārvaldnieku: Apsveriet iespēju izmantot virtuālās vides pārvaldnieku, piemēram,
virtualenvwrapper
vaiconda
, lai vienkāršotu vairāku virtuālo vidi pārvaldību.
Virtuālās vides pārvaldnieki
Lai gan virtualenv
un venv
ir lieliski rīki virtuālo vidi izveidošanai, tie var kļūt apgrūtinoši pārvaldāmi, strādājot ar vairākiem projektiem. Virtuālās vides pārvaldnieki nodrošina papildu funkcijas un ērtības virtuālo vidi pārvaldīšanai.
virtualenvwrapper
virtualenvwrapper
ir virtualenv
paplašinājumu kopums, kas atvieglo virtuālo vidi izveidošanu, pārvaldību un darbu ar tām. Tas nodrošina komandas virtuālo vidi izveidošanai, aktivizēšanai, deaktivizēšanai un dzēšanai, kā arī pieejamo vidi uzskaitīšanai.
Lai instalētu virtualenvwrapper
, izmantojiet pip:
pip install virtualenvwrapper
virtualenvwrapper
iestatīšana un izmantošana atšķiras atkarībā no jūsu operētājsistēmas. Detalizētus norādījumus skatiet virtualenvwrapper
dokumentācijā.
conda
conda
ir atvērtā koda pakotņu, atkarību un vidi pārvaldības sistēma. To bieži izmanto datu zinātnē un zinātniskajā skaitļošanā, taču to var izmantot arī vispārējai Python izstrādei. conda
ļauj izveidot un pārvaldīt virtuālās vides, kā arī instalēt un pārvaldīt pakotnes.
Lai instalētu conda
, lejupielādējiet un instalējiet Anaconda vai Miniconda no Anaconda tīmekļa vietnes.
Lai izveidotu jaunu conda vidi, izmantojiet šādu komandu:
conda create --name myenv python=3.9
Lai aktivizētu vidi:
conda activate myenv
Lai deaktivizētu vidi:
conda deactivate
Conda piedāvā visaptverošu rīku komplektu atkarību un vidi pārvaldībai, padarot to par populāru izvēli sarežģītiem projektiem.
Globālie apsvērumi un labākā prakse
Strādājot globālās komandās vai izvietojot lietojumprogrammas dažādos reģionos, ņemiet vērā šos faktorus:
- Konsekventas Python versijas: Nodrošiniet, lai visi komandas dalībnieki izmantotu to pašu Python versiju izstrādei. Tas novērš negaidītas saderības problēmas integrācijas un izvietošanas laikā. Piemēram, izstrādes komandai Tokijā, Japānā, un citai komandai Londonā, Lielbritānijā, vajadzētu vienoties par vienu Python versiju.
- Standartizētas vides: Izmantojiet tādus rīkus kā Docker vai Vagrant kopā ar virtuālajām vidēm, lai radītu konsekventas izstrādes un izvietošanas vides dažādās operētājsistēmās un infrastruktūrās. Tas garantē, ka jūsu lietojumprogramma darbosies, kā paredzēts, neatkarīgi no pamatā esošās sistēmas. Iedomājieties lietojumprogrammas izvietošanu, kas izstrādāta operētājsistēmā macOS, Linux serverī; Docker izmantošana nodrošina konsekventu darbību.
- Atkarību fiksēšana: Izmantojiet precīzus versiju numurus savā `requirements.txt` failā. Tas nodrošina, ka visi izmanto tieši tās pašas atkarību versijas, mazinot iespējamās kļūdas, ko izraisa atšķirīgas bibliotēku versijas. Tā vietā, lai izmantotu `requests>=2.0`, izmantojiet `requests==2.28.1`.
- Starpplatformu saderība: Pārbaudiet savu lietojumprogrammu dažādās operētājsistēmās (Windows, macOS, Linux), lai agrīnā izstrādes procesā identificētu un atrisinātu visas platformspecifiskās problēmas. Mākoņdatošanas CI/CD cauruļvadi var automatizēt testēšanu dažādās platformās.
- Laika joslas: Strādājot ar laikjutīgiem datiem, izmantojiet konsekventu laika joslu (piemēram, UTC) un atbilstoši apstrādājiet laika joslu konversijas. Izvairieties paļauties uz vietējām laika joslām, jo tās var atšķirties dažādos reģionos.
- Rakstzīmju kodējums: Izmantojiet UTF-8 kodējumu visiem teksta failiem (ieskaitot pirmkodu un konfigurācijas failus), lai nodrošinātu pareizu starptautisko rakstzīmju apstrādi.
Biežāko problēmu novēršana
Šeit ir dažas biežākās problēmas, ar kurām varat saskarties, strādājot ar virtuālajām vidēm, un kā tās atrisināt:
- Aktivizācijas problēmas: Ja jums ir grūtības aktivizēt virtuālo vidi, pārliecinieties, ka izmantojat pareizo aktivizācijas skriptu jūsu operētājsistēmai un čaulai. Divreiz pārbaudiet aktivizācijas skripta ceļu un pārliecinieties, ka tas ir izpildāms.
- Pakotņu instalēšanas problēmas: Ja jums ir grūtības instalēt pakotnes, pārliecinieties, ka esat aktivizējis virtuālo vidi un izmantojat pareizo pip versiju. Iespējams, jums būs jāatjaunina pip uz jaunāko versiju.
- Atkarību konflikti: Ja saskaraties ar atkarību konfliktiem, mēģiniet izmantot
pipdeptree
vaipip-tools
, lai analizētu savas atkarības un identificētu konfliktējošās pakotnes. Iespējams, jums būs jāatjaunina vai jāsamazina noteiktu pakotņu versijas, lai atrisinātu konfliktus. - Virtuālās vides bojājumi: Ja jūsu virtuālā vide kļūst bojāta, varat mēģināt to dzēst un izveidot no jauna.
Secinājums
Virtuālās vides ir būtisks rīks Python izstrādātājiem, nodrošinot atkarību izolāciju, versiju pārvaldību un projektu reproducējamību. Izmantojot virtualenv
vai venv
, varat nodrošināt, ka jūsu projekti ir izolēti viens no otra un ka jūsu globālā Python instalācija paliek tīra. Atcerieties ģenerēt requirements.txt
failu katram projektam, lai atvieglotu atkarību replikāciju. Ievērojot šajā ceļvedī izklāstītās labākās prakses, varat racionalizēt savu Python izstrādes darbplūsmu un izveidot stabilākas un uzturamākas lietojumprogrammas. Globālai sadarbībai standartizētas vides un rūpīga atkarību pārvaldība ir vissvarīgākā.